import {AbstractControl, ValidatorFn} from '@angular/forms';

/**
 * 自定义验证规则：最小长度
 * 最小长度限制会与允许空产生冲突，类似于正则验证的规则，比如手机号，不是必填，如果不填
 * 写任何数字，则允许，如果填写了一个数字，则会应用最小长度11位的验证规则
 * */
export function customizeMinLengthValidator(length: number, validators: { [key: string]: string }, key: string): ValidatorFn {
  return (control: AbstractControl): { [key: string]: any } => {
    let len = 0;
    if (!!control.value) {
      len = control.value.length;
    }
    return len >= length ? null : (!validators.hasOwnProperty('required') && len === 0 ? null : {[key]: true});
  };
}
